From the first release on 2026-06-26 to v1.14.0 on 8/30. It shipped as a read-only viewer for huge logs, could edit and save them 11 days later, reached 1.0 in 15 days, and then grew comparison, a transform toolbox, AI, and a ruler for counting columns. Every tag, dated.
41releases
65days
15days to 1.0
3most in one day (7/11)
9days, longest gap (8/5→8/14)
Release density — one bar = one release
6/267/17/117/217/318/108/20
The middle stretch is the dense one — three on 7/11 (1.0 and two fixes right after it) is the peak. From 1.8 on, the gaps widen and each release gets bigger.
A viewer, nothing more
v0.1 – v0.3 · 6/26 – 6/29
The first three releases aim at one thing: open a log that other tools choke on, and stay standing. Nothing can be written back yet.
0.16/26First release. A viewer for huge files — mapped, not loaded, so a 10 GB log opens without filling memory
0.36/29Several documents at once, sidebar, jump to line, font choice, recent files
Writing back, and a face
v0.4 – v0.7 · 7/7 – 7/9
After an eight-day gap, editing lands. This is where the viewer becomes an editor — and where structured text (CSV, NDJSON) gets its own way of being read.
0.47/7Editing and saving. Replace, and save-as with a chosen encoding and line ending. The viewer becomes an editor
0.67/8Structured view. CSV/TSV lined up into monospaced columns, NDJSON projected to the fields you pick — read-only, so the file stays as it was
0.77/9Session restore — the tab list comes back, including unsaved new documents with their text — plus an About panel fixbuild did not launch
Making it shippable — 1.0
v0.8 – v1.0.3 · 7/10 – 7/12
Signed, notarised, and out as 1.0. Then two releases in a row spent on the worst kind of bug there is: unsaved text disappearing.
0.87/10Fixes for a build that would not start (signing, universal binary), Finder integration, print/PDF, update notice, new icon
0.97/10Signed with a Developer ID and notarised. Double-click opens it; no right-click trick needed
1.07/111.0. Open 10 GB, edit it, and save without ever leaving the file half-written
1.0.17/11Fixed data loss: an unsaved new document could vanish when another file was opened
1.0.27/11Unsaved text is written to a draft file on disk. Even a kill -9 gets it back on next launch
1.0.37/12Fixed jump-to-line while typing with a Japanese input method
Comparing
v1.1 – v1.3 · 7/13 – 7/16
Four days on one question: what changed? Four ways in — two files, two open tabs, the clipboard, and two URLs.
1.17/13Compare (diff). Side by side, highlighted by line and by character
1.1.17/13Fixed “Compare two files…”, which silently did nothing
1.27/14Merge. Pull a hunk across with the arrow, then save the result under a new name
1.2.17/14Merge now goes the way the arrow points (→ takes the left side to the right)
1.37/16Compare two URLs (https only — the shipped app has no ATS exception)
Filling the toolbox
v1.4 – v1.8 · 7/17 – 7/27
Eleven days of making the free core complete: query JSON in place, transform selections, own the look, and edit in more than one place at once.
1.47/17JSON pretty-print plus a query box (⌥⌘J) — jmespath-style filtering in place, nothing written to disk
1.57/18Text transform toolbox. Case conversion, HTML/URL/Base64 encode-decode, sort, dedupe, reverse, numbering, and piping the selection through a local command (⌥⌘R)
1.67/19More appearance themes, and settings you can export and hand to someone else
1.77/19Regex lookaround, ANSI colour, background opacity. The free core is feature-complete as planned
1.7.17/23Join lines, indent and outdent in the Format menu
1.87/27Multiple cursors (⌘-click, ⌘D) and line display, plus case-preserving replace, parameterised numbering, and splitting lines on a delimiter
AI, and a new headline
v1.9 – v1.11.2 · 7/28 – 8/14
Bring your own API key and ask the log what went wrong. Then the pitch itself changes: not “a big-file editor” but “the editor for text you didn't write”.
1.97/28AI, bring-your-own-key. Select the part of the log that failed and ask what it means. The key stays on your Mac
1.107/29The answer streams in as it is written. Pick a model, test the connection, and only models that actually answered are remembered
1.10.17/29Fixed ⌘F doing nothing in the editing pane for files under 8 MB — search, replace, ⌘L and per-pane undoreported by a user
1.10.27/30Fixed OpenAI reasoning models (o4-mini, o3) being rejected with a 400
1.10.38/3Two bugs found while filming a 5,816,535-row CSV: two menus left in English, and column widths measured from only the first 1,000 rows
1.118/5A toolbar, and the new headline. Six default buttons, live grep while you type on small files, and search / filter / follow that keep working while the columns stay lined up
1.11.18/5Fixed the search bar overlapping the structured-view banner
1.11.28/14Changes made by other apps are picked up automatically — the file on screen keeps up with the file on disk
Counting columns
v1.12 – v1.13.0 · 8/15 – 8/28
The structured view only ever worked on formats with a delimiter. Fixed-width records — the ones banks and government systems still hand out — got nothing at all.
1.128/15A column ruler, and fixed-width fields. Click a tick to drop a field boundary and drag it to adjust — or type the layout you already have, 1-8,9-14,15-40. The definition is remembered per file, and feeds the structured view as a fifth mode, so the records read as aligned columns
1.12.18/16Floating panels can be dragged where you want them (and stay there), and the structured view now pins the column names above the text — drag a boundary in that strip to resize the column
1.12.28/17Draw a guide and the text becomes columns — no reformatting, so it stays editable. Tab pads to the next field, ⌥Tab applies the layout to every line, and with no guides yet it derives one from the content
1.12.38/19Compare the shape, not the values (⇧⌘F) — for test data beside production data, where only the format matters: rows that differ only in their values read as identical, while 2026-08-19 and 2026/08/19 stay a difference. Also fixed menu check marks and greying out, which had never worked
1.12.48/21Filter the rows, and the columns fit what you filtered to. Widths were sampled from the first and last 1000 lines, so a long value that only appears in between was cut — on a 3-million-row CSV, filtering to 59 ERROR rows left a 34-character column showing con…. Also fixed small files getting an incoherent screen when the structured view was switched on while a filter was up
1.12.58/22The lines around each match (grep -C). Filtering shows you the matching line and nothing else, but what went wrong is usually in the line before it. Type a number in the ± box, or press ⌥⌘] to open it one line at a time
1.12.68/27Filtering, the way you left it.⌘F reopens with the funnel in the state you last put it in — and moving to a pane that cannot filter no longer erases that intent
1.13.08/28The way in. Pipe straight in (kubectl logs … | mreditor), and .gz / .zip open expanded — decided from the bytes, not the extension. Plus bookmarks: ⌘B to mark, ⌘; to step
Logs that are somewhere else
v1.14.0 · 8/30
Every log so far had to be on this machine. The ones you actually need are on a server, and the usual answer — copy it down first — stops being an answer at 10GB.
1.14.08/30Open a log on another machine, without downloading it (⌃⌘O). ssh host:/var/log/app.log opens at the tail with real line numbers, and filtering runs over there — grep -n returns the matching lines and their numbers without transferring a byte of the file. Follow streams tail -f and stops it on the far side when you stop. ⌘C gives you the text, so it goes straight into Compare with Clipboard
About this data
Dates are the GitHub release publication date (UTC). A few differ from the tag date by a day — v1.3 was tagged on 7/15 and published on 7/16.
All 41 tags have a published release. No tag-only versions, no skipped numbers.
v0.7 does not launch. Its release notes were rewritten to point at v0.9; the fix shipped in v0.8 (signing) and v0.9 (notarisation).
The two long silences are 6/29 → 7/7 (eight days, spent building editing) and 8/5 → 8/14 (nine days, spent on the paid edition).
Measured numbers quoted here belong to the build they were measured on; see the landing page for the current ones.